thinkingParticles offers its advanced particle system functionality through
a programmatic approach. As an artist, the word programming
conjures up images of code creation and advanced college degrees, however,
you should not be afraid of this powerful tool. thinkingParticles provides
artists with an easy-to-use visual Wire
Setup View to procedurally build the rules and conditions that control
the particle behavior.
Through this interface and control, artists become the ultimate masters
of all particle mayhem within their scenes.

Final Destination
2 image courtesy of Digital Dimension New Line Cinema
To start, it is critical that we differentiate between these two types
of particle systems as they are often mistakenly considered the same.
The difference between Event-Driven particles
(such as Particle Flow) and Rule-Based particles
(like thinkingParticles) can be summed up quite simply:
An Event-Driven particle system is based on "triggers" or events
that must happen to activate a specific particle effect, while a Rule-Based
system works outside of time and relies on rules and conditions to govern
particle behavior.
A simple example of this kind of event system would be having particles
spawn when one object collides with another. One object must
collide with another in order to create particles. This kind of system
implies some kind of keyframe related effects.
Conversely, thinkingParticles is totally independent of time and keyframe
constraints and offers true Non-Linear Animation capabilities. Rules and
conditions control the particle effects. A particle system created with
thinkingParticles will work regardless of the timing or number of frames
that change within an animation. Imagine the freedom you have when working
with this kind of rule-based system.
Here's an example:
Imagine that you are tasked with creating a vast space scene including an animated spaceship trying to navigate through an asteroid field. This field contains enormous meteors as well as smaller pieces of debris floating around randomly. Now imagine that your client tells you that the spaceship should avoid the bigger meteors, but that the smaller rocks and debris can collide and bounce off the hull.
An Event-Driven particle system would fail to handle this kind of situation
effectively because you would first need to define a path through the
asteroid field for the spaceship, then you would need to look for the
exact keyframes where collisions should happen. But what happens if, after
setting up all of the animation, you needed to change the path of the
spaceship, or the amount of debris, or the balance between the big and
small meteors and debris? It would most likely require that you start
from the beginning and rework much of the scene.
thinkingParticles on the other hand is designed specifically to handle
this kind of situation. First and foremost, it can take your spaceship
model and treat it as a single particle. And because of this fact, by
applying two rules to the spaceship, you can solve all of your meteor
and debris collision and avoidance issues. Conceptually, the rules you'd
apply to your new spaceship particle would look something like this:
If SPACESHIP GETS NEAR (VALUE) A ROCK
CHECK IF
BIG (VALUE) ROCK THEN AVOID IT (move around)
SMALL (VALUE) ROCK IGNORE AND DO COLLISION
END
Of course, the text above is not the real code fragment. In thinkingParticles
you do not need to type in any code at all. This is only the high-level
logic you would use to help build the rules and conditions for your scene.
What is unique in this logic flow is that, as you can see, there is no
time-related variable in it, so this will always work, regardless of how
you animate the spaceship’s path or adjust the length of the animation.
Whenever the spaceship gets near a meteor, it will evaluate all of the
rules associated with it, and this in turn control's the spaceship's behavior
accordingly.
thinkingParticles uses the same basic animation controls and features
just like most other 3ds Max plug-ins do. Not surprisingly, the easiest
way to animate a parameter within thinkingParticles is by using the Animate
button and the frame slider. Every change will be recorded per frame and
the values will be interpolated automatically. Be aware that thinkingParticles
also exposes all animatable parameters to TrackView so that you can use
any expression or controller to animate a specific parameter.
This means that Object and Inverse Kinematic animations are also supported
when nodes are used a particles. For example, the Geom
Instance operator allows you to select Character Studio Bipeds, which
can then be used as particles within the system.
Materials and material animation are also supported by thinkingParticles
, but there are a few things to consider.
The way you can assign materials to your particle systems can become a
very complicated situation to keep track of. In theory, each individual
particle can have its own material, and in some situations each particle
could also have more than one material
assigned to it. You must also understand that 3ds Max handles all of the
particles within each particle system as one mesh object,
and add to that the fact that 3ds Max is only able to assign one
material per object. To get more than one material per object,
you must use Material IDs and Multi/Sub-Object materials.
Imagine modeling 3 different spaceships - each with roughly twenty materials
assigned to them through the use of Material IDs and Multi/Sub-Object
materials. Let's say that you want to use these craft as particles to
create a massive space battle. It would be practically impossible to handle
all of these object-based particles with multiple materials manually,
so thinkingParticles has an automated system that does the job for you.
It reads in the materials applied to the original objects, then updates
every time it is needed or forced to do so within the system (through
operators like Material Time - which handles animated
materials).
Please note that it is legal to change and animate any material outside of thinkingParticles, but keep in mind what an immense chain reaction you might activate when you change a sub-material of a sub-material of a sub-material, and so on.
This automatic material update process also gives some insight as to why you can't change any of the thinkingParticles 4 materials. Any manual change of a sub-material from within thinkingParticles will be useless since it will be recreated from scratch every time you change or reinitialize the particle system or object that is attached to it.
Now that you've had some brief exposure to the concepts surrounding
thinkingParticles, it's time to dive into the specifics of how you create
all of the cool particle animations you've dreamed of over the years.
This means getting familiar with how you access thinkingParticles, navigating
it's controls and the logic that will be required for your particle work.
While it is highly recommended that you go through the Introduction material
in order, if you prefer you can click on any of the topics that interest
you.